Bedienung von rsync

Die Übersichtlichkeit der Seite wird durch Javascript erhöht. Ist dies aktiviert, werden die Texte unter den Überschriften durch Anklicken der Überschriften ein- und ausgeblendet.

Vorwort

rsync ist bei Linux immer schon mit an Bord und ist ein sehr gutes Werkzeug, wenn es darum geht, 2 Verzeichnisse miteinander abzugleichen. Allerdings ist hat es sehr viele Möglichkeiten und entsprechende Parameter. Hier möchte ich mir notieren, was für meine Zwecke von Bedeutung ist, damit ich schnell auf die entsprechnden Optionen, die ich für die Bedienung benötige zurückgreifen kann.

nach oben

Ziel-Verzeichnis komplett als Spiegel des Quellverzeichnisses

Erklärung

Die für mich häufigste Anwendung ist, dass ich ein Verzeichnis habe, welches genau gleich nochmals an anderer Stelle gespiegelt wird. Das bedeutet auch, dass wenn im Quellverzeichnis eine Datei nicht mehr vorhanden ist, dass diese auch im Zielverzeichnis gelöscht wird.

nach oben

Befehl

rsync -auvPhh --delete --stats QUELLE/ ZIEL

Bei der Quellenangabe ist zu beachten, dass

wenn sie nicht mit einem Slash endet
wird der Quellordner in den Zielordner kopiert.
wenn sie mit einem Slash endet
wird der Inhalt des Quellordners in den Zielordner kopiert

Optionen

a
beinhaltet -rlptg(oD - wenn root)
r
kopiert Unterverzeichnisse
l
kopiert Symbolische Links
H
kopiert Hard-Links (sonnst wird jeder Hardlink in eine neue Datei kopiert)
p
behält die Rechte der Quelldatei bei
t
behält die Zeiten der Quelldatei bei
g
behält die Gruppe der Quelldatei bei
u
nur Dateien die im Ziel nicht jünger sind
v
berichtet ausführlich, was gemacht wird
P
Fortschritsanzeige + Fortsetzung nach Abbruch
--delete
Löscht Dateien im Zielverzeichnis, die nicht im

Quellverzeichnis sind

c
zum Vergleich der Dateien werden Cheksummen gebildet
hh
Dateigrößenangaben werden lesbarer angegeben
--stats
ausführlicher Report am Ende der Übertragung
n
nur Testen (dry run)

nach oben

Sicherung meines Home-Verzeichneisses

Ich möchte in meinem Home-Verzeichnis mehrere Ordner sichern. Dabei geht es um:

realisiert habe ich es wie folgt:

alias sync-all='sync-audials;rsync -HauvPhh --delete --stats --exclude=Musik/RadioTracker --exclude=Musik/allTunes /mnt/Daten/GemeinsameDateien /mnt/Daten/Musik /mnt/Daten/Dokumente /mnt/Daten/Bilder /home/maik/.thunderbird/pjzwmea6.default/Mail /mnt/Sicherung/backintime /run/media/maik/Backup'

Erklärung

Die Ordner im Home-Verzeichnis sind bei mir Links zu den gleichnamigen Ordnern auf einer großen Datenfestplatte. Auch wenn der Parameter a den Parameter l enthält, der dafür sorgt, das solchen Links gefolgt wird, besteht hier nicht die Möglichkeit direkt z.Bsp. ~/Dokumente als Quelle anzugeben. Hingegen funktioniert ~/Dokumente/ als Quelle. Bei letzterer Variante wird allerdings der Inhalt des Ordners in das Zielverzeichnis syncronisiert. Die Daten sollen allerdings auf dem Backup-Laufwerk in die gleichnamigen Ordner syncronisiert werden. Mit einem Link als obersten Quell-Ordner, kann rsync allerdings nicht umgehen. Deshalb habe ich direkt die verlinkten Ordner (z.Bsp.: /mnt/Daten/Dokumente) als Quellordner angegeben.

Es gab aber noch ein weiteres Problem. Der Ordner GemeinsameDateien, der Dateien beinhaltet, auf die ich von Windows in der Virtuellen Maschiene zugreifen kann, enthält unter anderem den Ordner Musik. In diesem Ordner speichere ich Aufnahmen von dem Programm RadioTracker aus Windows heraus und syncronisiere diese in meinen Ordener ~/Musik/Bibliothek. Da mein Musik-Ordner allerdings ebenfalls syncronisiert werden muss, darf der Musik-Ordner im Ordner GemeinsameDateien nicht ebenfalls syncronisiert werden, um eine doppelte Sicherung dieser Musikaufnahmen zu vermeiden.

Man kann rsync mit der Option --exclude=AusschlussMuster mitteilen, das bestimmte Sachen von der Syncronisation ausgeschlossen werden sollen. Allerdings ist hier nicht etwa die Angabe von Ordnern mit absoluten Pfadangaben möglich, sondern nur Namen oder Expressions von Namen die innerhalb der Quellordnerhirachie vorkommen. In meinem Fall wäre das also der Ordnername Musik. Aber Achtung: die Sache hat hier einen Haken. Den der Ordner Musik in meinem Verzeichnis GemeinsameDaten soll ausgeschlossen werden, der Ordner Musik von dem Quellverzeichnis /mnt/Musik soll explizit gesichert werden. Dies kann rsync nicht Unterscheiden. Deshalb bleibt mir nur die verschiedenen Unterordner innerhalb von GemeinsameDaten/Musik auszuschließen. Um die Sache möglichst eindeutig zu machen habe ich folgende Ausschlüsse definiert:

  • --exclude=Musik/RadioTracker
  • --exclude=Musik/allTunes

nach oben